package cn.iocoder.yudao.module.crossborder.order.dal.dataobject.ordermain;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 跨境电商订单主 DO
 *
 * @author 芋道源码
 */
@TableName("crossborder_order_main")
@KeySequence("crossborder_order_main_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderMainDO extends BaseDO {

    /**
     * 订单编号
     */
    @TableId
    private Long id;
    /**
     * 订单号
     */
    private String orderNo;
    /**
     * 平台订单ID
     */
    private String platformOrderId;
    /**
     * 平台订单号
     */
    private String platformOrderNo;
    /**
     * 平台编号
     */
    private Long platformId;
    /**
     * 店铺编号
     */
    private Long storeId;
    /**
     * 客户编号
     */
    private Long customerId;
    /**
     * 客户编号
     */
    private String customerNo;
    /**
     * 订单类型（1普通订单 2预售订单 3团购订单 4批发订单 5换货订单）
     */
    private Integer orderType;
    /**
     * 订单来源
     */
    private String orderSource;
    /**
     * 销售渠道
     */
    private String salesChannel;
    /**
     * 订单状态（10待确认 20待支付 30已支付 40备货中 50已发货 60已送达 70已完成 80已取消 90已退款）
     */
    private Integer orderStatus;
    /**
     * 支付状态（10未支付 20部分支付 30已支付 40支付失败 50已退款 60部分退款）
     */
    private Integer paymentStatus;
    /**
     * 履约状态（10待处理 20备货中 30已分配 40拣货中 50已拣货 60已打包 70已发货 80运输中 90已送达）
     */
    private Integer fulfillmentStatus;
    /**
     * 订单货币
     */
    private String currencyCode;
    /**
     * 汇率
     */
    private BigDecimal exchangeRate;
    /**
     * 基础货币
     */
    private String baseCurrency;
    /**
     * 商品种类数
     */
    private Integer itemCount;
    /**
     * 商品总数量
     */
    private BigDecimal totalQuantity;
    /**
     * 商品小计金额
     */
    private BigDecimal subtotalAmount;
    /**
     * 运费
     */
    private BigDecimal shippingAmount;
    /**
     * 税费
     */
    private BigDecimal taxAmount;
    /**
     * 关税
     */
    private BigDecimal dutyAmount;
    /**
     * 保险费
     */
    private BigDecimal insuranceAmount;
    /**
     * 手续费
     */
    private BigDecimal handlingFee;
    /**
     * 折扣金额
     */
    private BigDecimal discountAmount;
    /**
     * 优惠券金额
     */
    private BigDecimal couponAmount;
    /**
     * 积分抵扣金额
     */
    private BigDecimal pointsAmount;
    /**
     * 调整金额
     */
    private BigDecimal adjustmentAmount;
    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;
    /**
     * 已支付金额
     */
    private BigDecimal paidAmount;
    /**
     * 退款金额
     */
    private BigDecimal refundAmount;
    /**
     * 获得积分
     */
    private Integer pointsEarned;
    /**
     * 使用积分
     */
    private Integer pointsUsed;
    /**
     * 下单时间
     */
    private LocalDateTime orderTime;
    /**
     * 确认时间
     */
    private LocalDateTime confirmTime;
    /**
     * 支付时间
     */
    private LocalDateTime paymentTime;
    /**
     * 发货时间
     */
    private LocalDateTime shipTime;
    /**
     * 送达时间
     */
    private LocalDateTime deliveryTime;
    /**
     * 完成时间
     */
    private LocalDateTime completeTime;
    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;
    /**
     * 取消原因
     */
    private String cancelReason;
    /**
     * 预计送达日期
     */
    private LocalDate expectedDeliveryDate;
    /**
     * 发货截止时间
     */
    private LocalDateTime deliveryDeadline;
    /**
     * 自动确认天数
     */
    private Integer autoConfirmDays;
    /**
     * 买家留言
     */
    private String buyerMessage;
    /**
     * 卖家备注
     */
    private String sellerMessage;
    /**
     * 内部备注
     */
    private String internalNotes;
    /**
     * 风险评分
     */
    private BigDecimal riskScore;
    /**
     * 风险等级（1低 2中 3高）
     */
    private Integer riskLevel;
    /**
     * 反欺诈检查状态（0未检查 1检查中 2通过 3拒绝）
     */
    private Integer fraudCheckStatus;
    /**
     * 是否紧急订单
     */
    private Boolean isUrgent;
    /**
     * 是否礼品订单
     */
    private Boolean isGift;
    /**
     * 礼品留言
     */
    private String giftMessage;
    /**
     * 是否代发货
     */
    private Boolean isDropshipping;
    /**
     * 订单标签，逗号分隔
     */
    private String tags;


}
